package com.um.jdy.platform.platform.controller;

import com.um.jdy.common.platform.entity.dto.AppDTO;
import com.um.jdy.common.platform.entity.po.App;
import com.um.jdy.common.platform.entity.vo.AppVO;
import com.um.jdy.platform.platform.entity.dto.*;
import com.um.jdy.platform.platform.manager.AppManager;
import com.um.springboot.starter.annotation.ApiPermission;
import com.um.springboot.starter.annotation.TokenRequired;
import com.um.springboot.starter.orm.controller.BaseController;
import com.um.springboot.starter.orm.entity.Response;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

/**
 * 平台-小程序管理
 *
 * @author cs
 * 日期 2023/5/31
 * 版权所有 广州优匠科技有限公司
 */
@RestController
@RequestMapping("/api/v1/cms/platform/app")
@Api(tags = "平台设置")
@ApiPermission("app")
@TokenRequired
public class AppController extends BaseController<AppManager> {

    /**
     * 详情
     *
     * @return
     */
    @ApiPermission("get")
    @ApiOperation("详情")
    @GetMapping
    public Response<AppVO> get() {
        return manager.get();
    }

    /**
     * 更新微信小程序
     *
     * @param id
     * @param appMiniDTO
     * @return
     */
    @ApiPermission("update_mini")
    @ApiOperation("更新微信小程序")
    @PutMapping({"mini/{id}"})
    public Response updateMini(@PathVariable String id, @RequestBody AppMiniDTO appMiniDTO) {
        return manager.updateMini(id, appMiniDTO);
    }

    /**
     * 更新微信公众号
     *
     * @param id
     * @param appMpDTO
     * @return
     */
    @ApiPermission("update_mp")
    @ApiOperation("更新微信公众号")
    @PutMapping({"mp/{id}"})
    public Response updateMp(@PathVariable String id, @RequestBody AppMpDTO appMpDTO) {
        return manager.updateMp(id, appMpDTO);
    }

    /**
     * 更新支付宝
     *
     * @param id
     * @param appAlipayDTO
     * @return
     */
    @ApiPermission("update_alipay")
    @ApiOperation("更新支付宝")
    @PutMapping({"alipay/{id}"})
    public Response updateAlipay(@PathVariable String id, @RequestBody AppAlipayDTO appAlipayDTO) {
        return manager.updateAlipay(id, appAlipayDTO);
    }

    /**
     * 更新短信配置
     *
     * @param id
     * @param smsDTO
     * @return
     */
    @ApiPermission("update_sms")
    @ApiOperation("更新短信配置")
    @PutMapping({"sms/{id}"})
    public Response updateSms(@PathVariable String id, @RequestBody SmsDTO smsDTO) {
        return manager.updateSms(id, smsDTO);
    }

    /**
     * 更新商城入口配置
     *
     * @param id
     * @param mallDTO
     * @return
     */
    @ApiPermission("update_mall")
    @ApiOperation("更新商城入口配置")
    @PutMapping({"mall/{id}"})
    public Response updateMall(@PathVariable String id, @RequestBody MallDTO mallDTO) {
        return manager.updateMall(id, mallDTO);
    }

    /**
     * 发送验证码到平台管理员手机
     * @return
     */
    @ApiPermission("send_code")
    @ApiOperation("发送验证码")
    @GetMapping({"send_code"})
    public Response sendMobileCode(){
        return manager.sendMobileCode();
    }
}
